package jp.ac.u_tokyo.dch.action.schema;

import java.util.ArrayList;

import jp.ac.u_tokyo.dch.core.db.DBConnection;
import jp.ac.u_tokyo.dch.service.DaoServiceAware;
import jp.ac.u_tokyo.dch.view.outputschema.CreateInputItemView;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
*
* @version 1.1
*
*/
public class CreateInputItemAction extends ActionSupport implements ModelDriven<CreateInputItemView>,DaoServiceAware{


	/**
	 *シリアル番号
	 */
	private static final long serialVersionUID = 1L;


	/**
	 * チェックサイン：エラー
	 */
	private final static String CHECK_ERROR = "1";

	/**
	 * チェックサイン：成功
	 */
	private final static String CHECK_SUCCESS = "2";
	/**
	 * DBコネクションオブジェクト
	 */
	private DBConnection dbConnection = null;
	/**
	 * 画面モデル
	 */
	private CreateInputItemView view = new CreateInputItemView();

	/**
	 * チェックサイン
	 */
	private String successSign;

	/**
	 * 初期化処理
	 * @return 結果
	 * @throws Exception 例外
	 */
	public String init() throws Exception {

		view.viewInit(dbConnection);
		return SUCCESS;
	}
	/**
	 * 変更する
	 * @return 結果
	 * @throws Exception 例外
	 */
	public String change() throws Exception {

		view.setOptions(new ArrayList<String>());

		return SUCCESS;
	}
	/**
	 * 登録する
	 * @return 結果
	 * @throws Exception 例外
	 */
	public String add() throws Exception {

		view.addRow();
		return SUCCESS;
	}
	/**
	 * 削除する
	 * @return 結果
	 * @throws Exception 例外
	 */
	public String delete() throws Exception {

		view.deleteRow();
		return SUCCESS;
	}

	public String selectField() throws Exception {

		view.setSelectFieldView(dbConnection);

		return SUCCESS;
	}

	/**
	 * 作成する
	 * @return 結果
	 * @throws Exception 例外
	 */
	public String make() throws Exception {

		String type = view.getType();

		if ("0".equals(type)) {
			if ("on".equals(view.getOptionKbn())) {

				if (view.isOptionsEmpty()) {
					successSign = CHECK_ERROR;
					return SUCCESS;
				}
				view.makeResult();
			}

		} else if ("2".equals(type) || "3".equals(type) || "4".equals(type) || "7".equals(type)) {
			if (view.isOptionsEmpty()) {
				successSign = CHECK_ERROR;
				return SUCCESS;
			}
			view.makeResult();
		}

		successSign = CHECK_SUCCESS;

		return SUCCESS;
	}

	@Override
	public CreateInputItemView getModel() {
		return view;
	}

	/**
	 *
	 * @return チェックサインを返す
	 */
	public String getSuccessSign() {
		return successSign;
	}
	@Override
	public void setDBConnection(DBConnection con) {
		dbConnection = con;

	}


}
